class JogandoController < ApplicationController
  layout 'jogar'
  def selecao
    #Mudar depois
    @jogador = Jogador.find_by_id(session[:jogador])
    @selecao = Missao.all
    @jogador.missaos.each do |z|
      @selecao.delete(z)
    end
    respond_to do |format|
      format.html # selecao.html.erb
      format.xml  { render :xml => @selecao }
    end
  end

  def selecionarnivel
    @jogador = Jogador.find_by_id(session[:jogador])
    @missao = Missao.find_by_id(params["missao"])
    session[:missao] = params["missao"]
    session[:nivel] = 0
    session[:pontuacao] = @jogador.pontuacao
    respond_to do |format|
      format.html
      format.xml { render :xml => @missao }
    end
  end
  
  def jogar

    @jogador = Jogador.find_by_id(session[:jogador])
    @jogada = Jogada.new
    # Primeira pergunta
  if params["nivelfinalizado"].nil?
      @missao = Missao.find_by_id(session[:missao])
      @nivel = @missao.nivels[session[:nivel]] #Buscando o nível da missão selecionada.
     if params["comecado"].nil?
        @pergunta = @nivel.perguntas.find_by_flag_primeira("1")
     else  #Passa para a pergunta seguinte.
        @pergunta = Pergunta.find_by_id(params[:proxpergunta])
     end
  else
      session[:nivel] = session[:nivel] + 1
      @missao = Missao.find_by_id(session[:missao])
      @nivel = @missao.nivels[session[:nivel]] #Buscando os niveis da missao selecionada.
     
    if !@nivel.nil?  
     if params["comecado"].nil?
        @pergunta = @nivel.perguntas.find_by_flag_primeira("1")
     else  #Passa para a pergunta seguinte.
        @pergunta = Pergunta.find_by_id(params[:proxpergunta])
     end
      @jogada.missao = @missao.nome
      @jogada.jogador = @jogador.nome
      if !@nivel.nil?
        @jogada.nivel = @nivel.nome
        @jogada.save
        TwitterClient.mensagem(Time.now.to_s() + " finalizou o nivel " + @nivel.nome)
      end
    end
  end
  
    #Se alguma pergunta for respondida corretamente, guarda o valor da resposta na pontuação do usuário
    if !params["resposta"].nil?
      if !params["perguntarespondida"].nil?
        @jogada.pergunta = params["perguntarespondida"]
      end
      @jogada.jogador = @jogador.nome
      @jogada.missao = @missao.nome
      @jogada.nivel = @nivel.nome
      @resposta = Resposta.find_by_id(Integer(params["resposta"]))
      @jogada.resposta = @resposta.texto
      @jogada.save
      session[:pontuacao] = session[:pontuacao] + Integer(@resposta.pontos)
    end

    #Verifica se a missao acabou, verificando se apos o ultimo nivel concluido, existe outro.
    if @nivel.nil?
      @jogador.missaos << @missao
      data_fim_missao = Time.now
      TwitterClient.mensagem(@jogador.nome + " concluiu a missao " + @missao.nome+" "+"("+data_fim_missao.strftime("%d/%m/%Y") +
      data_fim_missao.strftime(" as %I:%M%p")+")")
      redirect_to :action => "selecao"
    else
      respond_to do |format|
       format.html
       format.xml { render :xml => @nivel}
      end
    end
  end
end  
